{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "bb594a95",
   "metadata": {},
   "source": [
    "# 1. Scaled Dot-product Attention\n",
    "## 1.1 计算注意力权重\n",
    "使用某种相似度函数度量每一个 query 向量和所有 key 向量之间的关联程度。对于长度为m的 Query 序列和长度为 n 的 Key 序列，该步骤会生成一个尺寸为 m x n 的注意力分数矩阵。\n",
    "\n",
    "## 1.2 更新token embeddings\n",
    "\n",
    "$$\n",
    "\\text{Attention}(Q, K, V) = \\text{softmax}\\left(\\frac{QK^\\top}{\\sqrt{d_k}}\\right)V\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3bfa2ca9",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\develop\\python_code\\llm_algorithm\\.venv\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n",
      "'(MaxRetryError(\"HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /bert-base-uncased/resolve/main/tokenizer_config.json (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1032)')))\"), '(Request ID: ab8e998f-6d75-46c0-929a-c66b9ece02f1)')' thrown while requesting HEAD https://huggingface.co/bert-base-uncased/resolve/main/tokenizer_config.json\n",
      "Retrying in 1s [Retry 1/5].\n",
      "'(MaxRetryError(\"HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /bert-base-uncased/resolve/main/tokenizer_config.json (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1032)')))\"), '(Request ID: 7f6e20b4-e97b-47e7-9a41-6e500da0eb7b)')' thrown while requesting HEAD https://huggingface.co/bert-base-uncased/resolve/main/tokenizer_config.json\n",
      "Retrying in 2s [Retry 2/5].\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'input_ids': tensor([[ 2051, 10029,  2066,  2019,  8612]]), 'token_type_ids': tensor([[0, 0, 0, 0, 0]]), 'attention_mask': tensor([[1, 1, 1, 1, 1]])}\n",
      "tensor([[ 2051, 10029,  2066,  2019,  8612]])\n",
      "Embedding(30522, 768)\n",
      "torch.Size([1, 5, 768])\n"
     ]
    }
   ],
   "source": [
    "from torch import nn\n",
    "from transformers import AutoConfig, AutoTokenizer\n",
    "\n",
    "model_ckpt = \"bert-base-uncased\"\n",
    "# 通过预训练模型加载分词器\n",
    "tokenizer = AutoTokenizer.from_pretrained(model_ckpt)\n",
    "\n",
    "# 输入文本\n",
    "text = \"time flies like an arrow\"\n",
    "# 分词器将文本转换为模型可接受的输入格式\n",
    "inputs = tokenizer(text, return_tensors=\"pt\", add_special_tokens=False)\n",
    "print(inputs)\n",
    "print(inputs.input_ids)\n",
    "\n",
    "# 加载预训练模型的配置信息\n",
    "config = AutoConfig.from_pretrained(model_ckpt)\n",
    "# 创建一个词嵌入层\n",
    "token_emb = nn.Embedding(config.vocab_size, config.hidden_size)\n",
    "print(token_emb)\n",
    "\n",
    "# 将输入的token_ids转换为对应的词嵌入向量，映射为 [batch_size, seq_len, hidden_dim] 的张量\n",
    "input_embeds = token_emb(inputs.input_ids)\n",
    "print(input_embeds.size())\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c2957ed1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 5, 5])\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "from math import sqrt\n",
    "\n",
    "# 定义查询、键、值张量\n",
    "Q = K = V = input_embeds\n",
    "\n",
    "# 计算注意力分数\n",
    "dim_k = K.size(-1) # 维度是 768\n",
    "# torch.bmm: 批量矩阵乘法\n",
    "scores = torch.bmm(Q, K.transpose(1, 2)) / sqrt(dim_k)\n",
    "print(scores.size())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2c61ca32",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([[[1.0000e+00, 5.3919e-12, 1.6334e-12, 1.8686e-12, 7.2076e-13],\n",
      "         [3.1951e-12, 1.0000e+00, 1.0244e-12, 2.3637e-12, 1.1078e-12],\n",
      "         [6.1706e-12, 6.5307e-12, 1.0000e+00, 1.4652e-11, 9.2053e-12],\n",
      "         [2.1375e-12, 4.5629e-12, 4.4368e-12, 1.0000e+00, 5.2944e-12],\n",
      "         [1.6935e-12, 4.3926e-12, 5.7256e-12, 1.0875e-11, 1.0000e+00]]],\n",
      "       grad_fn=<SoftmaxBackward0>)\n",
      "torch.Size([1, 5, 5])\n",
      "tensor([[1., 1., 1., 1., 1.]], grad_fn=<SumBackward1>)\n"
     ]
    }
   ],
   "source": [
    "import torch.nn.functional as F\n",
    "# 计算注意力权重\n",
    "weights = F.softmax(scores, dim=-1)\n",
    "print(weights)\n",
    "print(weights.size())\n",
    "print(weights.sum(dim=-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "fb86b3dc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 5, 768])\n"
     ]
    }
   ],
   "source": [
    "attn_outputs = torch.bmm(weights, V)\n",
    "\n",
    "print(attn_outputs.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "0234ab59",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn.functional as F\n",
    "from math import sqrt\n",
    "\n",
    "def scaled_dot_product_attention(query, key, value, query_mask=None, key_mask=None, mask=None):\n",
    "    # 计算注意力分数\n",
    "    dim_k = key.size(-1)\n",
    "    scores = torch.bmm(query, key.transpose(1, 2)) / sqrt(dim_k)\n",
    "    \n",
    "    if query_mask is not None and key_mask is not None:\n",
    "        mask = torch.bmm(query_mask.unsqueeze(-1), key_mask.unsqueeze(1))\n",
    "    \n",
    "    # 应用掩码\n",
    "    if mask is not None:\n",
    "        scores = scores.masked_fill(mask == 0, -float(\"inf\"))\n",
    "    \n",
    "    # 计算注意力权重\n",
    "    weights = F.softmax(scores, dim=-1)\n",
    "    \n",
    "    return torch.bmm(weights, value)\n",
    "    \n"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "id": "526cc205",
   "metadata": {},
   "source": [
    "## 1.2 Multi-head Attention\n",
    "\n",
    "Multi-head Attention 首先通过线性映射将$Q,K,V$序列映射到特征空间，每一组线性投影后的向量表示称为一个头 (head)，然后在每组映射后的序列上再应用 Scaled Dot-product Attention：\n",
    "\n",
    "![image.png](attachment:image.png)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "a5c074f9",
   "metadata": {},
   "outputs": [],
   "source": [
    "from torch import nn\n",
    "\n",
    "class AttentionHead(nn.Module):\n",
    "    def __init__(self, embed_dim, head_dim):\n",
    "        super().__init__()\n",
    "        self.q = nn.Linear(embed_dim, head_dim)\n",
    "        self.k = nn.Linear(embed_dim, head_dim)\n",
    "        self.v = nn.Linear(embed_dim, head_dim)\n",
    "    \n",
    "    def forward(self, query, key, value, query_mask=None, key_mask=None, mask=None):\n",
    "        attn_output = scaled_dot_product_attention(\n",
    "            self.q(query), self.k(key), self.v(value), query_mask, key_mask, mask\n",
    "        )\n",
    "        return attn_output"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "79129315",
   "metadata": {},
   "source": [
    "实践中一般将 head_dim 设置为 embed_dim 的因数，这样 token 嵌入式表示的维度就可以保持不变，例如 BERT 有 12 个注意力头，因此每个头的维度被设置为 \n",
    "$768/12$ = 64。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "7ddaaeff",
   "metadata": {},
   "outputs": [],
   "source": [
    "class MultiHeadAttention(nn.Module):\n",
    "    def __init__(self, config):\n",
    "        super().__init__()\n",
    "        embed_dim = config.hidden_size\n",
    "        num_heads = config.num_attention_heads\n",
    "        head_dim = embed_dim // num_heads\n",
    "        \n",
    "        self.heads = nn.ModuleList([AttentionHead(embed_dim, head_dim) for _ in range(num_heads)])\n",
    "        self.output_linear = nn.Linear(embed_dim, embed_dim)\n",
    "    \n",
    "    def forward(self, query, key, value, query_mask=None, key_mask=None, mask=None):\n",
    "        x = torch.cat([head(query, key, value, query_mask, key_mask, mask) for head in self.heads], dim=-1)\n",
    "        x = self.output_linear(x)\n",
    "        return x\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "269093c3",
   "metadata": {},
   "source": [
    "使用 BERT-base-uncased 模型的参数初始化 Multi-head Attention 层，并且将之前构建的输入送入模型以验证是否工作正常："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "0f2b8ba0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 5, 768])\n"
     ]
    }
   ],
   "source": [
    "from transformers import AutoConfig, AutoTokenizer\n",
    "\n",
    "model_ckpt = \"bert-base-uncased\"\n",
    "tokenizer = AutoTokenizer.from_pretrained(model_ckpt)\n",
    "\n",
    "text = \"times flies like an arrow\"\n",
    "inputs = tokenizer(text, return_tensors=\"pt\", add_special_tokens=False)\n",
    "config = AutoConfig.from_pretrained(model_ckpt)\n",
    "token_emb = nn.Embedding(config.vocab_size, config.hidden_size)\n",
    "input_embeds = token_emb(inputs.input_ids)\n",
    "\n",
    "multihead_attention = MultiHeadAttention(config)\n",
    "query = key = value = input_embeds\n",
    "\n",
    "attn_output = multihead_attention(query, key, value)\n",
    "print(attn_output.size())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d60cc4ad",
   "metadata": {},
   "source": [
    "# 2. Transformer Encoder\n",
    "## 2.1 The Feed-Forward Layer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "73ca8955",
   "metadata": {},
   "outputs": [],
   "source": [
    "class FeedForward(nn.Module):\n",
    "    def __init__(self, config):\n",
    "        super().__init__()\n",
    "        self.linear1 = nn.Linear(config.hidden_size, config.intermediate_size)\n",
    "        self.linear2 = nn.Linear(config.intermediate_size, config.hidden_size)\n",
    "        self.gelu = nn.GELU()\n",
    "        self.dropout = nn.Dropout(config.hidden_dropout_prob)\n",
    "    \n",
    "    def forward(self, x):\n",
    "        x = self.linear1(x)\n",
    "        x = self.gelu(x)\n",
    "        x = self.linear2(x)\n",
    "        x = self.dropout(x)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "0eb6dc23",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 5, 768])\n"
     ]
    }
   ],
   "source": [
    "feed_forward = FeedForward(config)\n",
    "ffn_output = feed_forward(attn_output)\n",
    "print(ffn_output.size())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e138a44",
   "metadata": {},
   "source": [
    "## 2.2 Layer Normalization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "fb2b722e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 构建transformer encoder层\n",
    "class TransformerEncoderLayer(nn.Module):\n",
    "    def __init__(self, config):\n",
    "        super().__init__()\n",
    "        self.layer_norm_1 = nn.LayerNorm(config.hidden_size)\n",
    "        self.layer_norm_2 = nn.LayerNorm(config.hidden_size)\n",
    "        self.attention = MultiHeadAttention(config)\n",
    "        self.feed_forward = FeedForward(config)\n",
    "    \n",
    "    def forward(self, x, mask=None):\n",
    "        hidden_state = self.layer_norm_1(x)\n",
    "        \n",
    "        x = x + self.attention(hidden_state,hidden_state,hidden_state, mask)\n",
    "        x = x + self.feed_forward(self.layer_norm_2(x))\n",
    "        return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "63d78d26",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 5, 768])\n",
      "torch.Size([1, 5, 768])\n"
     ]
    }
   ],
   "source": [
    "# 测试transformer编码层\n",
    "encoder_layer = TransformerEncoderLayer(config)\n",
    "output = encoder_layer(input_embeds)\n",
    "print(input_embeds.size())\n",
    "print(output.size())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9b25d85c",
   "metadata": {},
   "source": [
    "## 2.3 Positional Embeddings\n",
    "\n",
    "Positional Embeddings 基于一个简单但有效的想法：使用与位置相关的值模式来增强词向量。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "4dea61b9",
   "metadata": {},
   "outputs": [],
   "source": [
    "class Embeddings(nn.Module):\n",
    "    def __init__(self, config):\n",
    "        super().__init__()\n",
    "        # token embeddings\n",
    "        self.token_embeddings = nn.Embedding(config.vocab_size, config.hidden_size)\n",
    "        # position embeddings\n",
    "        self.position_embeddings = nn.Embedding(config.max_position_embeddings, config.hidden_size)\n",
    "        # LayerNorm\n",
    "        self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)\n",
    "        # dropout\n",
    "        self.dropout = nn.Dropout()\n",
    "        \n",
    "    def forward(self, input_ids):\n",
    "        seq_length = input_ids.size(1)\n",
    "        position_ids = torch.arange(seq_length, dtype=torch.long).unsqueeze(0)\n",
    "        # 创建一个位置向量和输入的token向量\n",
    "        token_embeddings = self.token_embeddings(input_ids)\n",
    "        position_embeddings = self.position_embeddings(position_ids)\n",
    "        \n",
    "        # 合并输入向量和位置向量\n",
    "        embeddings = self.LayerNorm(token_embeddings + position_embeddings)\n",
    "        embeddings = self.dropout(embeddings)\n",
    "        return embeddings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "5d8ead6f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 5, 768])\n"
     ]
    }
   ],
   "source": [
    "embedding_layer = Embeddings(config)\n",
    "print(embedding_layer(inputs.input_ids).size())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "c58bc3eb",
   "metadata": {},
   "outputs": [],
   "source": [
    "class TransformerEncoder(nn.Module):\n",
    "    def __init__(self, config):\n",
    "        super().__init__()\n",
    "        self.embeddings = Embeddings(config)\n",
    "        self.layers = nn.ModuleList([TransformerEncoderLayer(config) for _ in range(config.num_hidden_layers)])\n",
    "    def forward(self, x, mask=None):\n",
    "        x = self.embeddings(x)\n",
    "        for layer in self.layers:\n",
    "            x = layer(x, mask)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "4441fc8c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 5, 768])\n"
     ]
    }
   ],
   "source": [
    "encoder = TransformerEncoder(config)\n",
    "print(encoder(inputs.input_ids).size())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "e4eb724f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5\n",
      "tensor([[1., 0., 0., 0., 0.],\n",
      "        [1., 1., 0., 0., 0.],\n",
      "        [1., 1., 1., 0., 0.],\n",
      "        [1., 1., 1., 1., 0.],\n",
      "        [1., 1., 1., 1., 1.]])\n"
     ]
    }
   ],
   "source": [
    "seq_len = inputs.input_ids.size(-1)\n",
    "print(seq_len)\n",
    "mask = torch.tril(torch.ones(seq_len, seq_len)).unsqueeze(0)\n",
    "print(mask[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "b703a004",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[[26.5322,    -inf,    -inf,    -inf,    -inf],\n",
       "         [ 0.5861, 27.0555,    -inf,    -inf,    -inf],\n",
       "         [-0.6082, -0.5514, 25.2031,    -inf,    -inf],\n",
       "         [-0.4737,  0.2847,  0.2566, 26.3977,    -inf],\n",
       "         [-1.4263, -0.4732, -0.2082,  0.4334, 25.6779]]],\n",
       "       grad_fn=<MaskedFillBackward0>)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scores.masked_fill_(mask == 0, -float(\"inf\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "83c13fd5",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "llm-algorithm (3.13.7)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
